package com.example.demo.service;

import java.util.List;

import io.jsonwebtoken.Claims;
import org.apache.ibatis.annotations.Param;

import com.example.demo.pojo.User;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpServletRequest;

public interface UserService {
	
	/**
	 * 检查用户账号是否重复
	 * */
	public int checkRegisterUserAccountRepeat(User user);
	
	/**
	 * 注册时添加用户
	 * */
	public int registerAddUser(User user);
	
	/*
	 * 访问网页时检查token
	 * */
	public String checkToken(Claims claims);

	/*
	* 重新登录发放token验证
	* */
	public String createTokenAndLogin(String userAccount,String userPassword);

	/**
	 * 测试token验证
	 * **/
	public String testToken(HttpServletRequest request,String userPassword);

	/**
	 * 查找用户基本信息
	 * */
	public List<User> findUserBasicInfo(User user);

	/** 后台功能 **/

	/**
	 * 查找所有用户
	 * */
	public List<User> findUserList();

	/*
	 * 根据ID查用户
	 * @param
	 * @return
	 * */
	User findUserById(int id);

	/**
	 * 后台更新用户信息
	 * */
	public int backUserUpdataInfo(User user);

	/**
	 * 后台删除用户，已被启用、禁用用户替代
	 * */
	public int deleteUserFromBack(User user);

	/**
	 * 更改用户的启用状态（禁用、启用）
	 * **/
	public int changeUserState(@Param("userState") String userState,@Param("userAccount") String userAccount);
}
